1. Technical Field
The present invention relates in general to the field of computers, and in particular to hardware communication in a computer system. More particularly, the present invention relates to a synchronization optimized queuing system utilized with network interface hardware in a computer system.
2. Description of the Related Art
Computer systems typically utilize network interface hardware devices, such as one or more network adapters, to facilitate communication between the computer system and a wired or wireless internet, or intranet. Existing network adapter queue implementations for network interface hardware communication are not optimized for end of initiative handling of interrupts between the computer system and the network interface hardware. Existing networking adapter queue implementations for network interface hardware require a certain sequence of functions at the end of its processing routine, such as: a re-enable of interrupts to ensure that the network interface hardware has received an interrupt enable (e.g., by performing a memory-mapped input/output (MMIO) read instruction), and rechecking the queue to ensure that no data packets that are “in process” were missed during the enabling of interrupts, etc. This type of end of initiative sequence causes inefficiency in a processor which controls the computer system. Furthermore, MMIO read instructions cause the processor to wait, and to not execute any additional instructions until a present MMIO read instruction is processed.
At present, software device drivers which run within a computer system encounter processing completion notification inefficiencies. For example, there is significant central processing unit (CPU) overhead associated with processing each interrupt, as described above. Known attempts to optimize between frequent polling and interrupt generation in order to reduce latency, reduce the number of interrupts and to reduce polling an empty memory queue have not proved overly successful.
Thus, there is a need for an optimized queuing system for network interface hardware in a computer system that eliminates presently utilized end of initiative functions which ensure that the network interface hardware has received an interrupt enable and to recheck the interrupt queue.